package co.edu.javeriana.konigsberg.xavier.dao;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityTransaction;

import co.edu.javeriana.konigsberg.xavier.dao.desc.FacultadDAOLocal;
import co.edu.javeriana.konigsberg.xavier.entidad.Facultad;

@Stateless
public class FacultadDAO extends DAO<Facultad> implements FacultadDAOLocal{
	private static final long serialVersionUID = 1L;

	@Override
	@SuppressWarnings("unchecked")
	public List<Facultad> obtenerLista(){
	    return (List<Facultad>) em.createNamedQuery("Facultad.findAll").getResultList();
	    
	}

	@Override
	@SuppressWarnings("unchecked")
	public List<Facultad> obtenerListaPorPadre(BigInteger idAreaGestion) {
		return (List<Facultad>) em.createNamedQuery("Facultad.findByParent").setParameter("idAreaGestion", idAreaGestion).getResultList();
	}

	@Override
	public Facultad obtenerPorId(BigInteger id) {
		return em.find(Facultad.class, id);
	}

	@Override
	public void guardar(Facultad facultad) {
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.persist(facultad);
		tx.commit();
	}

	@Override
	public void actualizar(Facultad facultad) {
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.merge(facultad);
		tx.commit();
	}
}
